using System;
using System.Runtime.Serialization;

namespace FreeFlow
{
	/// <summary>
	/// Exception class thrown by FreeFlow.
	/// </summary>
  [Serializable]
  public class FreeFlowException : Exception
  {
    /// <summary>
    /// Creates a new <see cref="FreeFlowException"/> instance.
    /// </summary>
    public FreeFlowException()
    {
    }

    /// <summary>
    /// Creates a new <see cref="FreeFlowException"/> instance.
    /// </summary>
    /// <param name="message">The exception message.</param>
    public FreeFlowException(string message) : base(message)
    {
    }

    /// <summary>
    /// Creates a new <see cref="FreeFlowException"/> instance.
    /// </summary>
    /// <param name="message">The exception message.</param>
    /// <param name="innerException">Inner exception.</param>
    public FreeFlowException(string message , Exception innerException) :
      base(message, innerException)
    {
    }

    /// <summary>
    /// Creates a new <see cref="FreeFlowException"/> instance.
    /// </summary>
    /// <param name="info">Info.</param>
    /// <param name="context">Context.</param>
    protected FreeFlowException(SerializationInfo info, StreamingContext context) :
      base(info, context)
    {
    }
  }
}
